// ***************************************************************************
// *   Copyright (C) 2007 to 2013 by Jonathan Duddington                     *
// *   email: jonsd@users.sourceforge.net                                    *
// *   Copyright (C) 2018 Reece H. Dunn                                      *
// *                                                                         *
// *   This program is free software; you can redistribute it and/or modify  *
// *   it under the terms of the GNU General Public License as published by  *
// *   the Free Software Foundation; either version 3 of the License, or     *
// *   (at your option) any later version.                                   *
// *                                                                         *
// *   This program is distributed in the hope that it will be useful,       *
// *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
// *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
// *   GNU General Public License for more details.                          *
// *                                                                         *
// *   You should have received a copy of the GNU General Public License     *
// *   along with this program; if not, see:                                 *
// *               <http://www.gnu.org/licenses/>.                           *
// ***************************************************************************/

// Russian translation rules
// This file is UTF8 encoded

// Special characters:
// A  vowel:                    а е ё и о у ы э ю я ә ө ұ ү і
// B  soft consonant:           ь й ч щ
// C  any consonant:            б в г д ж з й к л м н п р с т ф х ц ч ш щ ъ ь қ ң һ
// F  consonant, not hard:      б в г д з й к л м н п р с т ф х ч щ ь
// G  voiced:                   б в г д ж з
// H  hard consonant:           ъ ж ц ш
// Y  iotated vowel, softsign:  ь ю я ё


.L11    а ы е ой ою ~ ам ами ах   // suffixes for 1. declination words ending а (e.g. страна, Юра)
.L12    я и е ю ёй ею ь ям ями ях // suffixes for 1. declination words ending я (e.g. земля, дядя)
.L13    я и ю ей ею й ям ями ях   // suffixes for 1. declination words ending Aя (e.g. ария) A means vowel

.L21    ~ а у ом е ы ов ам ами ах // suffixes for 2. declination masculine words without ending (e.g. стол)
.L22    ь я ю ем ём е и ей ями ях // suffixes for 2. declination masculine words without ending (e.g. конь)
.L23    й я ю ем и ев ям ями ях   // suffixes for 2. declination masculine words with ending й (герой)
.L24    о а у ом е ам ами ах      // suffixes for 2. declination neuter words with ending о (e.g. окно, note about ок_он_!)
.L25    е я ю ем ей ям ями ях     // suffixes for 2. declination neuter words with ending е (e.g. поле)
.L26    е я ю ем и й ям ями ях    // suffixes for 2. declination neuter words with ending Aе (e.g. здание)

.L31    ь и ью ей ам ами ах       // suffixes for 2. declination feminine words without ending (e.g. ночь)


.group а
        а       V
     B) а (_    V
     _) а       a
     _) а (_    a
        а (_    a

.group б
        б       b
     _) б (_    b@-        // бы/б
        б (Y    b;
        б (_    p
        б (бY   b;
        б (бвY  b;
        б (бмY  b;
        б (вY   b;
        б (кY   p
        б (мY   b;
        б (пY   p;
        б (сY   p
        б (тY   p
        б (фY   p;
        б (ффY  p;
        б (хY   p
        б (хкY  p
        б (ч    p
        б (щ    p
        б (ь_   p;

.group в
        в       v
        в (_    f
        в (Y    v;
     _) в (_    v@-
        в (бY   v;
        в (вY   v;
        в (вбY  v;
        в (вмY  v;
        в (кY   f
        в (мY   v;
        в (п'   f;
        в (сY   f
        в (тY   f
        в (ф'   f;
        в (хY   f
        в (хкY  f
        в (ч    f
        в (щ    f
        в (ь_   f;

.group г
        г       g
    Cе) г (о_   v
    Cо) г (о_   v
  _все) г (о_   v
     _) г (_    gE
        г (Y    g;
        г (_    k
        г (к    x
        г (пY   k
        г (сY   k
        г (тY   k
        г (фY   k
        г (ффY  k
        г (хY   k
        г (хкY  k
     е) г (о_   v
  _мно) г (о_   g

.group д
        д       d
        д (B    d;
     _) д (_    dE
        д (Y    d;
        д (_    t
        д (дY   d;
        д (зY   d;
        д (кY   t
        д (нь   d;
        д (пY   t
        д (сY   t;
        д (тY   t;
        д (фY   t
        д (ффY  t
        д (хY   t
        д (хкY  t
        д (ь_   t;

.group е
           е       e
        A) е       je
        A) е (_    jI3     // second position
     бакт) е (р    E%      // бактериальный, антибактериальный, ...
     барт) е (р    E%
      реб) е (н    j8
        _) е (_    je
        _) е       jI3     //second position
      инт) е (р    E%      // интернет, интернационал, ... ??????????
  компьют) е (р    E%
        т) е (ст   E%
        ъ) е       je
        ъ) е (_    jI3     //second position
        ь) е       je
        ь) е (_    jI3     //second position

.group ж
        ж       Z
        ж (_    S
     _) ж (_    Z@-        // же/ж
        ж (кY   S
        ж (пY   S
        ж (сY   S
        ж (тY   S
        ж (фY   S
        ж (ффY  S
        ж (хY   S
        ж (хкY  S
        ж (ч    S;

.group з
        з       z
        з (Y    z;
        з (_    s
     _) з (_    zE
        з (дY   z;
        з (е    z
        з (ж    Z
        з (зY_  s;
        з (зY   z;
        з (здY_ s;
        з (здY  z;
        з (знB_ s;
        з (знB  z;
        з (знY_ s;
        з (знY  z;
        з (кY   s
        з (нB   z;
        з (нY   z;
        з (пY   s
        з (сY   s;
        з (тY   s;
        з (фY   s
        з (ффY  s
        з (хY   s
        з (хкY  s
        з (ч    S;
        з (ш    S
        зщ      S;
        з (щ    s

.group и
        и       i
     H) и       y       // preceded by hard consonant
     ж) и       y
     _) и       I
        и (_    I
     _) и (_    i
     ш) и       y

.group й
        й       j
     _) й (_    ,i'k@-*'AtkOjI

.group к
        к       k
        к (Y    k;
     _) к (_    k@-
        к (б    g
        к (бY   g
        к (г    g
        к (гY   g
        к (дB   g
        к (д    g
        к (дY   g
        к (ж    g
        к (з    g
        к (зY   g

.group л
        л       l
     _) л (_    El^
        л (Y    l^

.group м
        м       m
     _) м (_    Em
        м (Y    m;
        м (бY   m;
        м (вY   m;
        м (пY   m;
        м (фY   m;
        м (ффY  m;

.group н
        н       n
   биз) не (с   nE%
     _) н (_    En_
        н (Y    n^
        н (_    n_

.group о
        о       o
     _) о (_    o

.group п
        п       p
        п (Y    p;
     _) п (_    pE
        п (б    b
        п (б'   b;
        п (г    b
        п (гY   b
        п (д    b
        п (дB   b
        п (дY   b
        п (ж    b
        п (з    b
        п (зY   b
        п (мY   p;
        п (пY   p;
        п (пмY  p;
        п (пфY  p;
        п (фY   p;
        п (ффY  p;

.group р
        р       r
        р (B    r;
     _) р (_    Er
        р (Y    r;
        р (ь    rI^

.group с
        с       s
     _) с (_    s@-
        с (Y    s;
        с (б    z
        с (г    z
        с (дB   z;
        с (дY   z;
        с (д    z
        с (ж    Z
        с (ж    z
        с (зY   z;
        с (з    z
        с (нB   s;
        с (нY   s;
        с (сY   s;
        с (тY   s;
        с (ть   s
        с (ч    S;
        с (ш    S
        с (щ    s;s;

.group т
        т       t
        Y) тс   ts
        т (Y    t;
     _) т (_    tE
        т (б    d
        т (г    d
        т (дB   d;
        т (д    d
        т (дY   d;
        т (ж    d
        т (ж    d
        т (з    d
        т (зY   d;
        т (нB   t;
        т (нY   t;
        т (сY   t;
        т (тY   t;

.group у
        у       u
     B) у       u#
     _) у (_    u

.group ф
        ф       f
     _) ф (_    Ef
        ф (Y    f;
        ф (б    v
        ф (б'   v;
        ф (гY   v
        ф (г    v
        ф (дB   v
        ф (дY   v
        ф (д    v
        ф (ж    v
        ф (зY   v
        ф (з    v
        ф (мY   f;
        ф (пY   f;
        ф (пмY  f;
        ф (пфY  f;
        ф (фY   f;

.group х
        х       x
        х (Y    x     //С
     _) х (_    xA
        х (бY   x
        х (б    x
        х (бвY  x
        х (бмY  x
        х (_бы  x
        х (гY   x
        х (г    x
        х (дB   x
        х (дY   x
        х (д    x
        х (ж    x
        х (зY   x
        х (з    x
        х (кY   x    //С

.group ц
        ц       ts
     _) ц (_    tsE
        ц (б    dz
        ц (бY   dz
        ц (бвY  dz
        ц (бмY  dz
        ц (г    dz
        ц (гY   dz
        ц (дB   dz
        ц (д    dz
        ц (дY   dz
        ц (ж    dz
        ц (з    dz
        ц (зY   dz

.group ч
        ч       tS;
  деви) ч (н    S   //Варианты окончаний женских отчеств типа Никитична
  коне) ч (но   S
    лу) ч (ше   t
 пустя) ч (н    S
 скворе)ч (н    S
   ску) ч (н    S
     _) ч (_    tS;e
        ч (б    dZ;
        ч (бY   dZ;
        ч (бвY  dZ;
        ч (бмY  dZ;
        ч (г    dZ;
        ч (гY   dZ;
        ч (дB   dZ;
        ч (д    dZ;
        ч (дY   dZ;
        ч (ж    dZ;
        ч (з    dZ;
        ч (зY   dZ;
        ч (на_  S
        ч (не_  S
        ч (ной_ S
        ч (ну_  S
        ч (ны_  S
     _) ч (то   S
    яи) ч (ни   S

.group ш
        ш       S
     _) ш (_    SA
        ш (бY   Z
        ш (б    Z
        ш (бвY  Z
        ш (бмY  Z
        ш (гY   Z
        ш (г    Z
        ш (дB   Z
        ш (дY   Z
        ш (д    Z
        ш (ж    Z
        ш (зY   Z
        ш (з    Z

.group щ
        щ       StS;
     _) щ (_    S;ja
        щ (бY   Z;
        щ (б    Z;
        щ (бвY  Z;
        щ (бмY  Z;
        щ (гY   Z;
        щ (г    Z;
        щ (дB   Z;
        щ (дY   Z;
        щ (д    Z;
        щ (ж    Z;
        щ (зY   Z;
        щ (з    Z;

.group ъ
        ъ (Y    _|
     _) ъ (_    tv;'8@-*dyjzn'Ak

.group ы
        ы       y
     _) ы (_    y

.group ь
        ь (Y    // no pronunciation (i.e. silent)
     _) ь (_    m;'jak;I#jzn'Ak

.group э
        э       E2
     _) э       E#
        э (_    E#
     _) э (_    e

.group ю
        ю       u"
     A) ю       ju
 следу) ю (щ    ju
     ъ) ю       ju
     ь) ю       ju
     _) ю       ju
     _) ю (_    ju

.group я
        я       V
     A) я       ja
     A) я (_    ja      //second position
//   C) я       ja# ?   // TODO: in unstressed position it sometimes sounds more like [i] than like [V]
     ъ) я       ja
     ъ) я (_    ja      //second position
     ь) я       ja
     ь) я (_    ja      //second position
     _) я (_    ja
     _) я       ja      //second position
        я (_    V

.group ё
        ё       '8
     _) ё       'j8
     _) ё (_    j8
     ж) ё       'O
     ш) ё       'O

.group
        // other cyrillic letters
        ѓ       dZ;
        ґ       g
        ђ       dZ;
        є       jE
        і       i
        ї       ji
        ј       j   // U+458
        ќ       kj
        љ       lj
        ћ       tS;
        ў       w
        џ       dZ
